"""
可以容纳多个元素
可以容纳不同类型的数据（混装）
数据是无序存储的（不支持下标索引）
不允许重复数据纯在
可以修改（增加或删除元素等）
支持for循环
"""

# 定义集合
my_set = {'rocky','rockycheng','python','rocky','rockycheng','python','rocky','rockycheng','python'}
my_set_empty = set()
print(f'my_set的内容：{my_set},类型是：{type(my_set)}')
print(f'my_set的内容：{my_set_empty},类型是：{type(my_set_empty)}')

# 添加新元素
my_set.add('cx')
my_set.add('rocky')
print(f'my_set添加元素后结果是：{my_set}')

# 移除元素
my_set.remove('rockycheng')
print(f'my_set移除rockycheng后，结果是：{my_set}')

# 随即取出一个元素
my_set = {'rocky','rockycheng','python'}
element = my_set.pop()
print(f'集合被取出来的元素是：{element},取出元素后：{my_set}')

# 清空集合
my_set.clear()
print(f'集合被清空，结果是：{my_set}')

# 取2个集合的差集
set1 = {1,2,3}
set2 = {1,5,6}
set3 = set1.difference(set2)
print(f'取出差集的结果是{set3}')
print(f'取差集后，原有set1的内容：{set1}')
print(f'取差集后，原有set2的内容：{set2}')

# 消除2个集合的差集
set1 = {1,2,3}
set2 = {1,5,6}
set1.difference_update(set2)
print(f'消除差集后，集合1结果是：{set1}')
print(f'消除差集后，集合2结果是：{set2}')

# 2个合集合为1个
set1 = {1,2,3}
set2 = {1,5,6}
set3 = set1.union(set2)
print(f'两集合合并结果是：{set3}')
print(f'合并后集合1：{set1}')
print(f'合并后集合2：{set2}')

# 统计集合元素数量len()
set1 = {1,2,3,4,5,1,2,3,4,5}
num = len(set1)
print(f'集合内的元素数量有：{num}个')

# 集合的遍历
# 集合不支持下标索引，不能用while循环
# 可以用for循环
set1 = {1,2,3,4,5}
for element in set1:
    print(f'集合的元素有：{element}')